/**
 * Clase PantallaRegistro: define la pantalla que vera el usuario, la primera vez que arranque la
 * aplicacion, para que pueda almacenar sus parametros identificativos, y de esta manera evitar
 * el tedioso proceso de login en un dispostivo movil (mejoras de USABILIDAD)
 */

package infbmobile.pantallas;

// Importaciones externas
import com.sun.lwuit.*;
import com.sun.lwuit.animations.CommonTransitions;
import com.sun.lwuit.animations.Transition;
import com.sun.lwuit.events.ActionEvent;
import com.sun.lwuit.layouts.*;
import com.sun.lwuit.events.ActionListener;

// Importaciones internas
import infbmobile.main.*;
import infbmobile.almacenamiento.*;
import infbmobile.comunicaciones.ComunicacionHttp;
import infbmobile.util.UIHerramientas;


public class PantallaRegistro extends Form implements ActionListener {
    // Referencia al midlet principal
    public InfBMobileMedico midlet;

    // Atributos de clase

    private TextField dni;
    private TextField numColegiado;
    private TextField password;
    private Command comandoGuardar;
    private Command comandoSalir;

    
    /*
     * Constructor principal de la clase
     */
    public PantallaRegistro(InfBMobileMedico midlet) {
        super("Registro de Medicos - HospiGest Medicos");
        this.midlet=midlet;
        // Definimos el layout del formulario
        setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        // Creamos y agregamos los componentes especificos de la pantalla
        dni=new TextField(CENTER);
        addComponent(UIHerramientas.crearPareja("dni: ",dni));
        numColegiado=new TextField(CENTER);
        addComponent(UIHerramientas.crearPareja("numero de Colegiado: ",numColegiado));
        password=new TextField(CENTER);
        password.setConstraint(TextField.PASSWORD);
        addComponent(UIHerramientas.crearPareja("password: ",password));
        // Configuramos los comandos
        comandoSalir=new Command("Salir");
        addCommand(comandoSalir);
        comandoGuardar=new Command("Guardar");
        addCommand(comandoGuardar);
        setCommandListener(this);
    }

    public String autenticar(String numColegiado,String password){

        // Configuramos una comunicacion http mediante el uso de la libreria desarrollada
        ComunicacionHttp.setHost(midlet.servidorWeb);
        ComunicacionHttp.setPuerto(midlet.puerto);
        ComunicacionHttp http = new ComunicacionHttp(ComunicacionHttp.LOGIN, "Login",null, midlet);
        String[] nombreParametros = new String[]{"accion", "perfil", "identificacion", "password"};
        String[] valoresParametros = new String[]{"login", "medico", numColegiado, password};
        http.setNombreParametros(nombreParametros);
        http.setValoresParametros(valoresParametros);
        http.setCheckSesion(false); // primero probamos sin mantenimiento de sesion
        http.setModoHebra(true);
        http.conectar();


        return http.getCodigoRespuesta();
    }

    public void actionPerformed(ActionEvent evento) {
        Object fuente=evento.getSource();
        String codRespuesta=null;
        // Recogemos de donde vino el evento
        if(fuente==comandoGuardar){
            // Guardamos la configuracion en el RMS

            
            
            Identificacion.setNumColegiado(numColegiado.getText());
            Identificacion.setPassword(password.getText());
            Identificacion.setDni(dni.getText());

            Identificacion.establecer();


            codRespuesta=autenticar(numColegiado.getText(),password.getText());

            

            
            // El mensaje de confirmacion
           /* Command comandoOk=new Command("OK");
            Transition transicion=CommonTransitions.createSlide(CommonTransitions.SLIDE_VERTICAL,true,1000);
            Dialog.show("Operacion OK","Sus parametros de identificacion han sido correctamente almacenados. Por favor, reinicie la aplicacion",comandoOk,new Command[] {comandoOk},Dialog.TYPE_CONFIRMATION,null,3000,transicion);
            
            midlet.mostrarPantallaMenuPrincipal();*/
        }else if(fuente==comandoSalir){
            midlet.salir();
        }

    }

}
